const api = require('../../utils/api.js');
const app = getApp();

Page({
  data: {
    canLogin: false,
    isLoading: false
  },

  onLoad: function() {
    // 检查是否已登录
    let openid = wx.getStorageSync('openid');
    let userId = wx.getStorageSync('userId');
    
    if (openid && userId) {
      // 已登录，跳转到首页
      wx.switchTab({
        url: '/pages/index/index'
      });
    } else {
      this.setData({
        canLogin: true
      });
    }
  },

  // 微信一键登录
  wxLogin: function() {
    const that = this;
    
    that.setData({
      isLoading: true
    });

    wx.showLoading({
      title: '登录中...',
      mask: true
    });

    wx.login({
      success: (res) => {
        if (res.code) {
          // 发送 code 到后端获取 openid
          wx.request({
            url: api.wxLogin({ code: res.code }),
            method: 'GET',
            success: (response) => {
              wx.hideLoading();
              that.setData({
                isLoading: false
              });
              
              console.log('后端返回结果:', response);
              
              if (response.data.success) {
                const { data, isNewUser } = response.data;
                
                // 保存 openid 和 userId
                wx.setStorageSync('openid', data.openid);
                wx.setStorageSync('userId', data._id);
                
                // 如果是新用户或未完善信息，跳转到注册页
                if (isNewUser || !data.username) {
                  wx.showToast({
                    title: '请完善个人信息',
                    icon: 'none',
                    duration: 2000
                  });
                  
                  setTimeout(() => {
                    wx.redirectTo({
                      url: '/pages/register/register'
                    });
                  }, 2000);
                } else {
                  // 已有完整信息，跳转到首页
                  wx.showToast({
                    title: '登录成功！',
                    icon: 'success',
                    duration: 2000
                  });
                  
                  setTimeout(() => {
                    wx.switchTab({
                      url: '/pages/index/index'
                    });
                  }, 2000);
                }
              } else {
                console.error('登录失败:', response.data);
                
                // 显示详细错误信息
                let errorMsg = response.data.message || '登录失败';
                if (response.data.errcode) {
                  errorMsg += `(错误码:${response.data.errcode})`;
                }
                
                wx.showModal({
                  title: '登录失败',
                  content: errorMsg,
                  showCancel: false
                });
              }
            },
            fail: (err) => {
              wx.hideLoading();
              that.setData({
                isLoading: false
              });
              
              console.error('登录请求失败:', err);
              wx.showToast({
                title: '网络请求失败',
                icon: 'none',
                duration: 2000
              });
            }
          });
        } else {
          wx.hideLoading();
          that.setData({
            isLoading: false
          });
          console.error('获取code失败:', res.errMsg);
        }
      },
      fail: (err) => {
        wx.hideLoading();
        that.setData({
          isLoading: false
        });
        console.error('wx.login失败:', err);
      }
    });
  },

  // 获取用户信息授权（可选功能）
  getUserProfile: function() {
    const that = this;
    
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        console.log('用户信息：', res.userInfo);
        // 保存用户信息到本地
        wx.setStorageSync('userProfile', res.userInfo);
        
        // 执行微信登录
        that.wxLogin();
      },
      fail: (err) => {
        console.error('获取用户信息失败:', err);
        wx.showToast({
          title: '需要授权才能继续',
          icon: 'none',
          duration: 2000
        });
      }
    });
  }
})

